#ifndef PUBLISHER_HPP_INCLUDED
#define PUBLISHER_HPP_INCLUDED

class Listener;
class Image;
class Model;

#include <vector>
using std::vector;

class Publisher
{
private:
	vector<Listener*> m_listenerList;
    typedef vector<Listener*>::const_iterator ListenerList_C_iterator;

public:
    Publisher(){}
    virtual ~Publisher(){}
    
	void AddListener(Listener *p_listener);
	void DeleteListener(Listener *p_listener);
	void Notify(Image& image);
	//void Notify(Model* model);
	void DoEvents(int s); // GUI 
};

#endif // PUBLISHER_HPP_INCLUDED
